Memory devices are conventionally provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including random-access memory (RAM), read only memory (ROM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and flash memory.
Flash memory devices have developed into a popular source of non-volatile memory for a wide range of electronic applications. Flash memory devices conventionally use a one-transistor memory cell that allows for high memory densities, high reliability, and low power consumption. Common uses for flash memory include portable audio/video storage devices, personal computers, personal digital assistants (PDAs), digital cameras, and cellular telephones.
As the performance and complexity of electronic systems increase, the requirement for additional memory in a system also increases. However, in order to continue to reduce the costs of the system, the parts count must be kept to a minimum. This can be accomplished by increasing the memory density of an integrated circuit.
One way to increase memory density is to use multi-level cell (MLC) non-volatile memory. This method stores two or more data bits in each memory cell. One problem with conventional MLC non-volatile memory is that subsequent programming of additional data can cause a program disturb condition that can program bits that are not desired to be programmed or create errors in already programmed bits. This is caused by placing a large programming voltage on a wordline that is shared by other cells that have either not been programmed or have already been programmed.
For the reasons stated above, and for other reasons stated below which will become apparent to those skilled in the art upon reading and understanding the present specification, there is a need in the art for reducing errors when programming MLC non-volatile memory cells.